﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using Model.Orden;
using Processes.Orden;
using Processes.Acta;

namespace Interfaces.Acta
{
    public partial class ModificarActa : System.Web.UI.Page
    {
        string nro;
        DateTime date;
        GestorOrden gestorOrden;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!User.Identity.IsAuthenticated)
                FormsAuthentication.RedirectToLoginPage();
            gestorOrden = new GestorOrden();
            if (!IsPostBack)
            {
                try
                {
                    
                    Session["Nro"] = Request.QueryString["Nro"];
                    Session["Date2"] = Request.QueryString["Date"];
                    nro = Session["Nro"].ToString();
                    date = DateTime.Parse(Session["Date2"].ToString());
                    FechaLabel.Text += date.ToShortDateString();
                    NroLabel.Text += nro;
                    List<Punto> puntos = new List<Punto>();
                    puntos = gestorOrden.puntosDeNro(nro);
                    DataList1.DataSource = puntos;
                    DataList1.DataBind();
                }
                catch (Exception ex)
                {
                    LabelError.Text = "No se pudo cargar el acta, hubo un error.";
                }
                
            }
            if (Session["Nro"] != null)
            {
                nro  = Session["Nro"].ToString();
            }
            if (Session["Date2"] != null)
            {
                try
                {
                     date = DateTime.Parse(Session["Date2"].ToString());
                }
                catch (Exception ex)
                {
                    
                    LabelError.Text = "No se reconoce la fecha";
                }
                
            }
        }
        public void llenarPuntos(List<Punto> puntos)
        { 
            
        }
        protected void Page_PreInit(object sender, EventArgs e)
        {
            if (Session["BuscarMaster"] != null)
            {
                string res = (string)Session["BuscarMaster"];
                this.MasterPageFile = res;
            }
        }

        protected void ButtonGuardar_Click(object sender, EventArgs e)
        {
            nro = Session["Nro"].ToString();        
            date = DateTime.Parse(Request.QueryString["Date"]);
            if (DataList1 != null)
            {
                int i = 0;
                List<Punto> puntos = new List<Punto>();
                foreach (DataListItem item in DataList1.Items)
                {
                    TextBox txb = (TextBox)item.FindControl("TextBox1");
                    Label nombre = (Label)item.FindControl("NombreDePunto");
                    Label numero = (Label)item.FindControl("NumeroPunto");
                    puntos.Add(new Punto());
                    puntos[i].NumeroPunto = numero.Text;
                    puntos[i].NombreDePunto = nombre.Text;
                    puntos[i].Contenido = txb.Text;
                    puntos[i].Nro = nro;
                    i++;
                }
                try
                {

                    if (gestorOrden.SetOrden(date, nro, puntos))
                    {
                        Model.Acta.Acta acta = new Model.Acta.Acta();
                        acta.FechaUltimaModificacion = DateTime.Now;
                        if(GestorActa.setFecha(acta.FechaUltimaModificacion,nro))
                            Response.Redirect("ModificacionExitosa.aspx");
                    }
                    else
                        LabelError.Text = "Hubo un error creando el acta. El servidor no se encuentra activo,\n hubo un error interno de servidor.";

                }
                catch (Exception es)
                {
                    LabelError.Text = "Hubo un error al modificar el acta vuelva a intentarlo más tarde";
                }
            }
        }
    }
}